package com.qidianit.task.mapper;

import com.qidianit.task.pojo.Task;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TaskMapper {
    /**
     * 根据项目编号和父任务编号查询任务列表
     * @param projectId
     * @param parentId 如果是查询一级任务，这里parentId默认是0
     * @return
     */
    List<Task> selectList(@Param("projectId") String projectId, @Param("parentId") Long parentId);
    /**
     * 批量修改任务状态
     * @param taskIds
     * @param taskStatus
     * @return
     */
    int updateTaskStatus(@Param("taskIds") Long [] taskIds,@Param("taskStatus") Integer taskStatus);
    //添加任务
    int insertTask(Task task);
    //通过id查看任务详情
    Task selectById(Long taskId);
    //通过id更新任务
    int updateById(Task task);
    //删除任务
    int deleteByTask(Task task);
    //给一个taskId去查询全表数据的parent_id与taskId相同出现的次数并统计
    int selectCount(Long taskId);
    //由子任务获得的父任务的id进行taskParent修改
    void changeTaskParent(Long taskId);
    //统计待办任务的数量为多少 我们这里把状态1即正常的状态的任务表示待办的
    int selectContinueTask(Long userId);
    //统计我已经完成任务的数量为多少 我门把状态为2即暂停的状态任务认为是完成
    int selectOverTask(Long userId);
    //通过taskId 逻辑删除任务项
    int updateByTaskId(Long taskId);
    //通过给projectId查询该任务下面的任务数量
    int selectTaskByProjectId(String projectId);
}
